{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "67b9a768-51ee-4825-b1cb-fc9ef8fd0857",
   "metadata": {},
   "source": [
    "Chapter 17\n",
    "\n",
    "# 正交回归，一元\n",
    "Book_7《机器学习》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0dc18116-1bba-48cf-93fa-c5c189f171cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# single variate TLS regression\n",
    "\n",
    "# initializations and download results \n",
    "import pandas as pd\n",
    "import yfinance as yf\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import scipy.stats as stats\n",
    "import statsmodels.api as sm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ab8002c5-e7c0-4484-b61c-d5fa78082743",
   "metadata": {},
   "outputs": [],
   "source": [
    "p = plt.rcParams\n",
    "p[\"font.sans-serif\"] = [\"Roboto\"]\n",
    "p[\"font.weight\"] = \"light\"\n",
    "p[\"ytick.minor.visible\"] = True\n",
    "p[\"xtick.minor.visible\"] = True\n",
    "p[\"axes.grid\"] = True\n",
    "p[\"grid.color\"] = \"0.5\"\n",
    "p[\"grid.linewidth\"] = 0.5\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "95b000d7-31c5-4ad2-9a30-416b427b1026",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[*********************100%%**********************]  1 of 1 completed\n"
     ]
    }
   ],
   "source": [
    "# y_levels_df = web.get_data_yahoo(['AAPL'], start = '2020-01-01', end = '2020-12-31')\n",
    "\n",
    "from datetime import datetime\n",
    "startdate = datetime(2020,1,1)\n",
    "enddate = datetime(2020,12,31)\n",
    "y_levels_df = yf.download(tickers = ['AAPL'],\n",
    "                  start = startdate,\n",
    "                  end = enddate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "0fb404ed-2b6e-4852-b3a5-060201db88f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_levels_df.to_pickle('y_levels_df.pkl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "fe954a76-ce41-4a1e-97bd-18c185797062",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>74.06</td>\n",
       "      <td>75.15</td>\n",
       "      <td>73.80</td>\n",
       "      <td>75.09</td>\n",
       "      <td>73.15</td>\n",
       "      <td>135480400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>74.29</td>\n",
       "      <td>75.14</td>\n",
       "      <td>74.12</td>\n",
       "      <td>74.36</td>\n",
       "      <td>72.44</td>\n",
       "      <td>146322800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-06</th>\n",
       "      <td>73.45</td>\n",
       "      <td>74.99</td>\n",
       "      <td>73.19</td>\n",
       "      <td>74.95</td>\n",
       "      <td>73.02</td>\n",
       "      <td>118387200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-07</th>\n",
       "      <td>74.96</td>\n",
       "      <td>75.22</td>\n",
       "      <td>74.37</td>\n",
       "      <td>74.60</td>\n",
       "      <td>72.68</td>\n",
       "      <td>108872000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-08</th>\n",
       "      <td>74.29</td>\n",
       "      <td>76.11</td>\n",
       "      <td>74.29</td>\n",
       "      <td>75.80</td>\n",
       "      <td>73.84</td>\n",
       "      <td>132079200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Open   High    Low  Close  Adj Close     Volume\n",
       "Date                                                        \n",
       "2020-01-02  74.06  75.15  73.80  75.09      73.15  135480400\n",
       "2020-01-03  74.29  75.14  74.12  74.36      72.44  146322800\n",
       "2020-01-06  73.45  74.99  73.19  74.95      73.02  118387200\n",
       "2020-01-07  74.96  75.22  74.37  74.60      72.68  108872000\n",
       "2020-01-08  74.29  76.11  74.29  75.80      73.84  132079200"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_levels_df.round(2).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4428b2c4-4437-46d2-a983-b5d1abfdf728",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_df = y_levels_df['Adj Close'].pct_change()\n",
    "y_df = y_df.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "aa65d8ac-030c-4298-97d0-711c1f272a35",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[*********************100%%**********************]  1 of 1 completed\n"
     ]
    }
   ],
   "source": [
    "# x_levels_df = web.get_data_yahoo(['^GSPC'], start = '2020-01-01', end = '2020-12-31')\n",
    "x_levels_df = yf.download(tickers = ['^GSPC'],\n",
    "                  start = startdate,\n",
    "                  end = enddate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c43e44e0-cd5e-472c-9eef-d6f1419e87e1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>3244.67</td>\n",
       "      <td>3258.14</td>\n",
       "      <td>3235.53</td>\n",
       "      <td>3257.85</td>\n",
       "      <td>3257.85</td>\n",
       "      <td>3459930000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>3226.36</td>\n",
       "      <td>3246.15</td>\n",
       "      <td>3222.34</td>\n",
       "      <td>3234.85</td>\n",
       "      <td>3234.85</td>\n",
       "      <td>3484700000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-06</th>\n",
       "      <td>3217.55</td>\n",
       "      <td>3246.84</td>\n",
       "      <td>3214.64</td>\n",
       "      <td>3246.28</td>\n",
       "      <td>3246.28</td>\n",
       "      <td>3702460000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-07</th>\n",
       "      <td>3241.86</td>\n",
       "      <td>3244.91</td>\n",
       "      <td>3232.43</td>\n",
       "      <td>3237.18</td>\n",
       "      <td>3237.18</td>\n",
       "      <td>3435910000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-08</th>\n",
       "      <td>3238.59</td>\n",
       "      <td>3267.07</td>\n",
       "      <td>3236.67</td>\n",
       "      <td>3253.05</td>\n",
       "      <td>3253.05</td>\n",
       "      <td>3726840000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               Open     High      Low    Close  Adj Close      Volume\n",
       "Date                                                                 \n",
       "2020-01-02  3244.67  3258.14  3235.53  3257.85    3257.85  3459930000\n",
       "2020-01-03  3226.36  3246.15  3222.34  3234.85    3234.85  3484700000\n",
       "2020-01-06  3217.55  3246.84  3214.64  3246.28    3246.28  3702460000\n",
       "2020-01-07  3241.86  3244.91  3232.43  3237.18    3237.18  3435910000\n",
       "2020-01-08  3238.59  3267.07  3236.67  3253.05    3253.05  3726840000"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_levels_df.round(2).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "0065098a-4ae7-438a-8943-c7be498cadca",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_df = x_levels_df['Adj Close'].pct_change()\n",
    "x_df = x_df.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "336e60de-ce41-48fe-9e27-cfae02c39c62",
   "metadata": {},
   "outputs": [],
   "source": [
    "# x_df = x_df.rename(columns={\"^GSPC\": \"SP500\"})\n",
    "\n",
    "x_y_df = pd.concat([x_df, y_df], axis=1, join=\"inner\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6e1dc770-53f3-43d4-99b0-d677f3831105",
   "metadata": {},
   "outputs": [],
   "source": [
    "#%% USE ODR in SciPy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "408b1dc9-2aab-473c-b72d-41ef34e5cbdd",
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.odr import *\n",
    "\n",
    "# Define a function to fit the data with\n",
    "def linear_func(b, x):\n",
    "   b0, b1 = b\n",
    "   return b1*x + b0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "f6850d15-8e6f-43e5-8107-82db7853bdc8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Beta: [0.00164846 1.43712049]\n",
      "Beta Std Error: [0.00112716 0.05613804]\n",
      "Beta Covariance: [[ 1.22308641e-02 -2.36574753e-02]\n",
      " [-2.36574753e-02  3.03391791e+01]]\n",
      "Residual Variance: 0.0001038749070840251\n",
      "Inverse Condition #: 0.22961144322020605\n",
      "Reason(s) for Halting:\n",
      "  Sum of squares convergence\n"
     ]
    }
   ],
   "source": [
    "# Create a model for fitting\n",
    "linear_model = Model(linear_func)\n",
    "\n",
    "# Load data to the model\n",
    "data = RealData(x_df.T, y_df.T)\n",
    "\n",
    "# Set up ODR with the model and data\n",
    "odr = ODR(data, linear_model, beta0=[0., 1.])\n",
    "\n",
    "# Solve the regression\n",
    "out = odr.run()\n",
    "\n",
    "# Use the in-built pprint method to display results\n",
    "out.pprint()\n",
    "\n",
    "#%%"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "729b0add-e4be-4066-9357-6e89ab376c10",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0027690720035688293"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_df.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "616e63b6-b683-474f-94dc-42cbb97c545a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.437138320660491\n",
      "0.0016484446382283927\n"
     ]
    }
   ],
   "source": [
    "#%% TLS, matrix computation\n",
    "import statsmodels.api as sm\n",
    "\n",
    "SIMGA = x_y_df.cov()\n",
    "\n",
    "Lambda, V = np.linalg.eig(SIMGA)\n",
    "\n",
    "idx = Lambda.argsort()[::-1]   \n",
    "Lambda = Lambda[idx]\n",
    "V = V[:,idx]\n",
    "\n",
    "lambda_min = np.min(Lambda)\n",
    "b1_TLS = -V[0, 1]/V[1, 1]\n",
    "print(b1_TLS)\n",
    "\n",
    "b0_TLS = y_df.mean() - b1_TLS*x_df.mean()\n",
    "print(b0_TLS)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "03af82a2-38b2-4e84-acca-2c0a77ea8706",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:              Adj Close   R-squared:                       0.689\n",
      "Model:                            OLS   Adj. R-squared:                  0.687\n",
      "Method:                 Least Squares   F-statistic:                     550.5\n",
      "Date:                Tue, 21 Nov 2023   Prob (F-statistic):           5.16e-65\n",
      "Time:                        20:18:17   Log-Likelihood:                 675.37\n",
      "No. Observations:                 251   AIC:                            -1347.\n",
      "Df Residuals:                     249   BIC:                            -1340.\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0019      0.001      1.819      0.070      -0.000       0.004\n",
      "Adj Close      1.1234      0.048     23.462      0.000       1.029       1.218\n",
      "==============================================================================\n",
      "Omnibus:                       52.109   Durbin-Watson:                   1.871\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              210.792\n",
      "Skew:                           0.772   Prob(JB):                     1.69e-46\n",
      "Kurtosis:                       7.216   Cond. No.                         46.0\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "#%% OLS regression\n",
    "\n",
    "# add a column of ones\n",
    "X_df = sm.add_constant(x_df)\n",
    "\n",
    "model = sm.OLS(y_df, X_df)\n",
    "results = model.fit()\n",
    "print(results.summary())\n",
    "\n",
    "p = model.fit().params"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "045cfb7e-4c5c-4a28-93f6-9353713d3869",
   "metadata": {},
   "outputs": [],
   "source": [
    "#%% visualization\n",
    "\n",
    "b0 = out.beta[0]\n",
    "b1 = out.beta[1]\n",
    "\n",
    "# generate x-values for  regression line\n",
    "x_ = np.linspace(x_df.min(),x_df.max(),10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "f76cfc6b-c488-4f70-890f-e3e350081e79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "const        0.001893\n",
       "Adj Close    1.123351\n",
       "dtype: float64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "77c64dab-418a-4bda-b5dc-f53cd66a56a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.15, 0.15)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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78vGjRvp3bs30HzeXwjdNS9ZsgS32x30eEFBQcROJqvtdR9Lc3qvIXTX3dD3u1UHUbPZTGlpKV6vN3Bu0aJFDB06tM51de/enZ9//jnoXElJSURORgjldSclJZGdnR34+vfff6dv374haWco1eWahw4dyieffBL42ufzYbVaA0t8mst7bTAYKCkpCXy9dOlShgwZElTmzDPPrLQkYNu2bYEdkvr168fvv/8eeCw7OzsihzTLheKaTz755EpLn7Zv317lxLRIUZvrPpbm9l5DaK67oe93q9/FxWq18uGHHwZtuXbOOecA1W+5VtW+pQDLli0jOzs7aMu1ivfOIkkor/v9999HURT8fj8Wi4UbbrihUa6hrupyzT/++CMbNmzAZDJRXFzMzTffHPQHpTm81x6Ph8mTJ2M2m/F4PHTs2JFhw4axZs0agMDEqC1btvDNN98QFRWF1Wpl+PDhQe/9vHnzAp/4vV4vd911V8QO/YXqmr/77ju2bduGXq/H7XZzzjnn0K9fvya5ptqo7XWXW716NT169Kj0M9uc3msI3XU35P1u9UFUCCGEqK/IGn8SQgghmhEJokIIIUQ9SRAVQggh6kmCqBBCCFFPEkSFEEKIepIgKoQQQtSTBFEhhBCiniSIimbDZrNxzz330KlTJywWC+eeey6//vprUJlnn32Wdu3a0a5dO15//fWgx/bu3YtGown8MxgM9O/fn/fee6/a19y5c2fQczQaDWazOfD4+vXrOeWUUzCZTHTt2pUZM2YEPX/27Nl0794dk8nEoEGDWLduXa2v96abbuKmm26qVdkrrriC//znP4D6PTj33HNr/TqismnTptGlS5emboZoBiSIimbjpptuYvPmzXzyySds2LCBIUOGcP7557N7924Avv76ayZOnMjMmTNZuHAhTz/9NBs2bKhUz6+//srBgwfZu3cvzz77LI8++ihTp06t8jUPHz5MQkICBw8eDPzbt28foG4KfOWVV3LyySezceNGHnroIW6++WY2btwIwB9//MG4ceN4+OGH2bhxIyeddBLDhg0LSz7SxYsX88ADD4S83ppIoKmafF9aFwmiolkoLS3ls88+Y9KkSQwePJiePXvyzDPPMHDgQD766CNAzds7YMAALrroIs4++2y6detWKdE4QHJyMu3bt6djx46MGDGCRx99lDfeeKPK1z18+DDt2rWjffv2gX/t2rUD4Ntvv6WoqIhJkybRp08f7r77bs4880zmzp0LwNy5czn77LO544476NOnD6+//jrFxcVh2TbNaDSGND1bqLbKa6r6GyKSN6IWkUeCqGgWdDodGo2mUlCcOXMmt956KwC9evViy5YtHDp0iMWLF5OVlRXIjVuTAQMGBHqzRysPolXZunUrPXv2DBreHTBgANu3bw88fvzxxwcei46Opnv37oHHj/bNN9/Qp08f4uLiuOqqq8jNzQ16/KOPPqJ3795ERUUxaNAgfvnll8Bj5557Ls8++2ylOs855xxuu+22oDZrNBq2bdtWqaxGoyEjI4OOHTvyyCOPAOruNRdccAExMTEcf/zxLFmyJPB648aNY9++fWg0GlavXl1lD6xLly5MmzYNUEcSLrnkEs444ww6duwYePyFF17gjDPOIDo6mv/7v/9j165dVX5/jq736aef5owzzsBisTBo0CD+/PNP7rvvPuLj42nXrh0vvfRSoLzH4+Ghhx6iffv2xMXFceWVV3Lo0CHgyDD/fffdR3JyMu+8806l17vzzjvp2bMnBQUFdf6+iJZNgqhoFqKiorjzzjsZO3YsDz74IH/++ScAXbt2DSQOv/zyy+nbty9nnnkmt956Kx9//HGNe4CW279/Px06dKjyscOHD7Nv3z6OP/54UlNTGTVqVGBfUpvNRnx8fFD5Nm3aBBJ4H+vxioqKirj66qu5/PLL+e233xg9ejTffvtt4PFvvvmGjIwMJk6cyNatWzn11FMZPnw4x0p9PWrUKJYsWRLoXS1fvpy+fftWu9POH3/8wZdffsmTTz5JaWkp559/PqeccgobNmzgscceY9SoUezatYuPP/6Y119/nU6dOnHw4EFOP/30GttR7scff+Thhx/mt99+C5x74403+Ne//sXvv/+ORqPhqaeeqlVdn3zyCW+++SY///wzPp+Pk046CZ1Ox++//84LL7zA448/Hviw8Pzzz/P555/z2Wef8csvv1BYWFhp+Ds7O5uffvqJsWPHBp2fOHEiCxcuZNmyZSQmJobl+yKaLwmiotl46623ePXVV1m4cCF9+vThrLPOCpqoU1paSnR0NLt27eKWW26p1eSaTZs28dJLLzFixIgqH+/Vqxenn3467733HvPmzeOvv/5i9OjRQNVDkhqNJhCwjvV4RbNnzyYxMZFXX32Vnj17MnLkSK655prA43379mXNmjVcc801dO3alX/+859kZ2dz8ODBGq9v+PDh5OfnB3qty5cvZ/jw4dWWf+qppzjuuONISEhg3rx5tGnThhdffJEePXowevRozj//fObPn0/btm2Jj49Hp9PRvn17jEZjje0oN2zYMIYNGxboiQI888wznH/++fTp04cbb7wxcE/5WP75z39y8sknM2DAAG699VYMBgOvvPIK3bt357bbbiM5OZlNmzYB8I9//IOvvvqKU089lX79+jF27FjWrl0bVN+LL75Iz549iY2NDZybP38+zz33HB9//DG9evUCCMv3RTRfEkRFs6HRaBg/fjx79uxh2bJlaDQazjrrLLZs2QIQCA6zZs3ijTfeYOXKldhsNjQaDVarNVBP//79iYmJISoqilNOOYWLLrqIp59+usrXHD16NHPmzOH000/n7LPP5oMPPmDlypXk5OSg1WorBURFUdDr9QDHfLyiHTt2cMIJJwTd19TpdIHjDh068Pvvv3PKKaeQlJTECSecAFBpM+GjpaSkcM455/DZZ59RUlLCDz/8wLXXXltt+Ypt27BhA1u3biUmJibw74svvghMrKqPqq49JiYmcBwVFYXdbq9VXRW/PxaLhYSEhKA9XaOioigrKwMgPT2d999/n379+hEfH8/48eMrfe+OblthYSG33HILF110UdBtgXB8X0TzVfknWogIlJ2dTXFxMf3790er1TJ06FAuueQSTjrpJKZPn87YsWNZuXIle/bsoUuXLuzevZvrr7+eF198kcTEROLj4ykqKgLU3ljHjh0xGo107Ngx6I/xsZTvMXjgwAFiY2MDdZYrLi4mISEB4JiPV6TRaGpsx+eff05GRgaTJk3i//7v/ygsLKz1MpZRo0bx2muvceqpp5Kens7AgQNr9TyA8847j8zMzKBzcXFxtX5+pHj88cdZtmxZoKe/ZMmSKu99VlRSUsINN9zA3LlzWb58edAG7i3l+yIaTnqioln48ssvueiii/B6vYFzWq2W9PR0/H5/oAcSHR0NwJNPPhmYGTtu3LigutLT0+nRowdpaWnHDKCnn346CxcuDHy9c+dOAFJTU+nXrx87duwIuse5efNm+vfvD6gBt+K9v7KyMnbt2hV4vKJevXqxYcOGoHucFa915cqVXHzxxdx2222B+7O1de2117Jr1y4mTZpUYy/0aH379mXr1q2kpaXRo0cPevToQfv27QP3mY+eDRwbG4vD4Qg6V/EamtLKlSu55557/r99+wllNoDjAP59rcVpMTtp5bJNDrZ6klqRpWRaE48dZqUcHJDhxoSDkpXUHHfw/9+k1nZQkoP0eEKIZEnayRQxycVBeU/vDvS+5umtZX0/16en3+/5Xb7Pn9+DhoYGlJaWoqCg4Mtz9Ho9FhYW4PP50N7ejmQyCeD7c6HsxhClH8HlckGtVsPj8eD4+BjxeBzBYBBbW1tobm6GyWRCWVkZOjs7cXFxgaOjI7y+vuL9/R0PDw+K69rtdgwNDUGWZZyfn8Pr9cJms0Gv18Nms0Gn08Hr9eLy8hLBYBCSJMHtdgMAWlpacHh4iEAgkNoc1el0qKys/FTH4/Hg/v4e/f39uL6+RigUQjgcTh03Go2QZRkHBwc4OztDV1cXAKT1z2lhYSFqamogSdI/v4d+1Nraire3N7S1tSEWi2F/fx8VFRWpTVStVovb21vs7u7i+fkZFosFj4+PmJ2dRTwex8jICBKJRNr1PtrZ2flvgWQ0GhEOh3F1dYXt7W2MjY19Obs/N1jDw8MoKipKzfy7c6HsxhClH0Gj0UCSJOTl5cFut8NsNmN6ehrr6+uwWq1QqVSpLdSqqio4nU5otVpsbGxgdXUVa2triur6fD40NjbC5XKhuroaWq0WKysrAIDc3FxEo1HEYjFYLBb4/X7Mz8+nNl/NZjPm5uYwNTUFs9mMk5MTRCIRqNXqT3Xy8/MRDocRiUQgCAKWl5fhdDpTxzs6OuBwOFBXVwdRFCGKIkwmE25ubtK6DlEUUVxcjPLy8rSvXaPRYHNzE4lEAoIgQBRFuN1uOBwOAEBtbS2sVivq6+txenoKg8GAiYkJDAwMwGq14unpCQaDIe16H728vPy3V6SBQAA5OTkQBAGDg4Po7u6GRqNJK+TUajUWFxcRjUYRCoW+PRfKbr/ev9qRJ6Ifr6+vDyqVCpOTk5luJW09PT1IJpNYWlrKdCtEf8XFIqIsdnd3h729PczMzECW5Uy38y0lJSVoamrKdBtE/8QnUaIs5vf7MT4+jtHRUfT29ma6HaKswxAlIiJSiItFRERECjFEiYiIFGKIEhERKcQQJSIiUoghSkREpBBDlIiISCGGKBERkUIMUSIiIoUYokRERAr9BkvjZYbaf6pHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "\n",
    "# scatter-plot data\n",
    "plt.scatter(x_df, y_df, alpha = 0.5, \n",
    "            s = 8,label = 'Data')\n",
    "\n",
    "plt.plot(x_, p.const + p['Adj Close'] * x_,\n",
    "         color = 'r', label = 'OLS')\n",
    "\n",
    "plt.plot(x_, b0 + b1 * x_,\n",
    "         color = 'b', label = 'TLS')\n",
    "\n",
    "plt.axhline(y=0, color='k', linestyle='--')\n",
    "plt.axvline(x=0, color='k', linestyle='--')\n",
    "plt.axis('scaled')\n",
    "plt.legend(loc='lower right')\n",
    "\n",
    "plt.axis('scaled')\n",
    "plt.ylabel('AAPL daily return')\n",
    "plt.xlabel('S&P 500 daily return, market')\n",
    "plt.xlim([-0.15,0.15])\n",
    "plt.ylim([-0.15,0.15])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
